1. Field of the Invention
The invention relates generally to Serial Attached SCSI (SAS) and more specifically relates to methods of performing zone configuration in a SAS architecture.
2. Discussion of Related Art
In Serial Attached SCSI (SAS) architectures (e.g., storage systems, general purpose computers, etc.), various SAS initiators communicate with various SAS targets, typically through one or more SAS expanders. The SAS expanders use multiple PHYs (e.g., physical links accompanied by associated transceiver hardware and logic) to route Input/Output (I/O) requests between the initiators and the targets, creating a switched fabric by which an initiator may contact one or more different targets (and/or vice versa). An interconnected, switched SAS fabric is therefore highly desirable because it allows communications between various SAS devices to be performed quickly, yet does not require a dedicated wire line connection between each SAS initiator and each SAS target.
Routing functions and associated tables within a SAS expander determine how to route a frame received from a first SAS device and directed to a second SAS device. The routing functions and tables identify which PHY of the expander the frame should be forwarded to in order to direct the frame toward its intended destination device (e.g., a SAS target or initiator device coupled to the switched SAS fabric). Later developments of the SAS standards introduced a “zone permission” feature that allowed for the addition of security measures within the SAS system that allow or dis-allow connections between devices and/or between groups of devices. For example, in a large enterprise it may be desirable to allow SAS devices within an engineering department to access one another, while also restricting the devices in the engineering department from accessing devices in the finance department (and vice versa). In order to configure SAS expanders to properly route and authorize incoming and outgoing I/O requests to various targets and initiators, SAS expanders often utilize these SAS zoning features. According to SAS zoning standards, each PHY of the SAS expander is associated with a SAS zone group. For the zone groups, a zone permission table is used to define which source zone groups may initiate communications with which destination zone groups. Requests from devices coupled with a PHY in a first zone group to access devices coupled with PHYs in unauthorized zone groups are rejected by a (zoning capable) expander that receives such requests. This ensures that unauthorized access does not occur within the SAS architecture.
SAS devices that implement zone management logic (i.e., zone managers) are used in order to configure the zoning of SAS expanders. Such zone managers use Serial Management Protocol (SMP) commands to program a SAS expander to alter the zone group numbers of various PHYs. Zone managers may further alter zone permissions in order to adjust which zone groups of an expander may interact with which other zone groups.
Currently, the zone configuration process takes some time, as the zone manager proceeds to engage in four separate steps: lock, load, activate, and unlock. Each step is associated with an activity. The lock step ensures that only one zone manager manipulates the SAS expander at once, the load step changes zoning parameters in a shadow memory of the expander, the activate step copies the zoning parameters from shadow memory into current memory of the expander in order to implement the new zoning parameters for incoming requests, and the unlock step releases the SAS expander so that it may be manipulated by other devices.
Furthermore, each step of the zone configuration process is associated with one or more SMP commands. For example, the lock step is associated with the SMP ZONE LOCK request, the load step is associated with one or more of SMP CONFIGURE ZONE PHY INFORMATION and SMP CONFIGURE ZONE PERMISSION TABLE, the activate step is associated with SMP ZONE ACTIVATE, and the unlock step is associated with SMP UNLOCK.
Because there are a large number of commands to manage during the zone configuration process, it can be a fairly cumbersome affair. Furthermore, if a zone manager fails to adhere to each of the zone configuration steps, a SAS expander may generate an error, which can trigger error processing and recovery at the zone manager. For example, if a SAS initiator transmits an SMP UNLOCK before an SMP ZONE ACTIVATE command has finished processing, the zone manager may receive an error in response. This in turn may activate error processing and recovery systems, wasting available resources at the zone manager.
Thus it is an ongoing challenge to enhance the efficiency of the SAS zone configuration process.